草庐IT

MySQL IF THEN 在 WHERE 子句中

全部标签

mysql - 如何在没有 ON 子句的情况下连接 2 个表

我想从两个不同的表中获取SUM(column_a),并求出它们的差值。我正在使用MySQL。表A的总和=1234表B的总和=4001我不确定要在我的ON子句中放入什么:SELECTSUM(a.column1)AStable_a_sum,SUM(b.column1)AStable_b_sum,SUM(a.column1)-SUM(b.column1)ASdifferenceFROMtable_aaJOINtable_bbON?????? 最佳答案 没有条件的连接是交叉连接。交叉联接为右侧表中的每一行重复左侧表的每一行:FROMtabl

mysql - WHERE 子句或 ON 子句中的 INNER JOIN 条件?

我今天输错了一个查询,但它仍然有效并给出了预期的结果。我打算运行这个查询:SELECTe.idFROMemployeeseJOINusersuONu.email=e.emailWHEREu.id='139840'但我不小心运行了这个查询SELECTe.idFROMemployeeseJOINusersuONu.email=e.emailANDu.id='139840'(注意最后一个子句中的AND而不是WHERE)并且都从用户ID返回了正确的员工ID。这两个查询有什么区别?第二种形式是否只加入符合条件的2个表的成员,而第一种形式会加入整个表,然后运行查询?一个比另一个更有效还是更不有效?

MySQL 计数行值 WHERE column = value

我有一个看起来很像这样的数据库:我想做一个MySQL查询,计算每个id的votes并从最高的开始排序。我希望输出如下:是否可以不在彼此内部进行3个查询? 最佳答案 selectname,sum(votes)astotal_votesfrommytablegroupby1orderby2desc 关于MySQL计数行值WHEREcolumn=value,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/q

java - where in 子句中没有值时如何执行查询

我有一个根据不同ID获取结果的查询,我的查询如下所示:我已经缩短了查询,但还有两个WHEREIn条件。SELECTDISTINCTrestaurant.*,branch.*fromrestaurant,branch,restaurant_cuisines,restaurant_collectionsWHERErestaurant.restaurant_id=branch.restaurant_idANDrestaurant_cuisines.cuisine_idIN(2,3)ANDrestaurant_collections.collection_idIN();当条件中第二个WHERE

MySQL - 在一个查询中使用不同 WHERE 的两个计数

表格field1field2a1bc3e4f我需要计算field1和notemptyfield2withonquery:SELECTCOUNT(field1)FROMtable+SELECTCOUNT(field2)FROMtableWHEREfield2!=''结果应该是5和3在一个查询中。这可能吗? 最佳答案 简单易行:)selectcount(field1),count(field2)frommy_table结果:+--------+--------+|field1|field2|+--------+--------+|5|3

php - "where in "mysql 子句

我使用了一个mysql查询,其中有“whereidin("22,20,21")”但是当我得到结果时,它就像按升序排列的数组,即20、21、20但我需要它的顺序与我给子句的顺序相同 最佳答案 我认为您应该能够像这样使用FIELD关键字:SELECT*FROMtableWHEREidin(22,20,21)ORDERBYFIELD(id,22,20,21);这是mysql特有的,看起来很神奇,但它确实有效。 关于php-"wherein"mysql子句,我们在StackOverflow上找到

javascript - "where in"nodejs中的MySQL查询

我需要使用“WHEREIN”进行MySQL查询。这是我的查询:varmyQuery='SELECTuidFROM'+tableName+'whereGenderIN('+Info.Gender.join()+')';如果我打印Info.Gender,它将是['Male','Female'],作为一个字符串。但是当查询完成时它说SELECTuidFROMappUserswhereGenderIN(Male,Female)但应该是:SELECTuidFROMappUserswhereGenderIN('Male','Female')这意味着它不将Female作为字符串。有什么想法吗?

sql - WHERE x IN (5) 与 WHERE x = 5 ... 为什么使用 IN?

我最近注意到有人在使用IN时似乎有点不合适。我觉得我错过了一个技巧-也许有速度提升之类的?这个查询:SELECT*FROMpagesWHEREis_visibleIN($visibility)为什么要用它?为什么不:SELECT*FROMpagesWHEREis_visible=$visibility当然,如果是这样的话:SELECT*FROMpagesWHEREis_visibleIN($visibility,$invisibility,$somethingelse)那么WHERExIN(1,2,3)是WHEREx=1ORx=2ORx=3的更好替代方案,对吗?但肯定这是您应该使用IN

mysql - 强制 MySQL 在不使用 JOIN/UNION 的情况下从 WHERE IN 子句返回重复项?

这可能不是很明智,但如果WHEREIN子句中存在重复条件,我想让MySQL返回准确的重复行。这可能吗?举个例子:SELECTcolumnsFROMtableWHEREidIN(1,2,3,4,5,1,2,5,5)我希望MySQL返回id为5的行三次,id为1和2两次,id为3和4一次。由于IN参数的长度以及重复计数(一次、两次、三次等)都是任意的,我不想依赖UNION或JOIN。否则可能发生这样的事情吗? 最佳答案 我不确定您为什么要禁止JOIN,因为它对SQL非常重要。这就像在函数式语言中禁止函数调用。解决这个问题的一个好方法是创

mysql - PL SQL Procedure (Oracle) 比较 where 子句中的变量

这让我发疯。我想对列和变量进行简单比较,但它不起作用。以下行总是计算所有元组,而我只需要那些由where子句条件化的元组。SELECTcount(*)INTOcntfromclasswhereclass.fid=fid;它看起来很简单,但我已经为此工作了几个小时。完整的sql过程是最令人困惑的是,如果我用一些硬编码ID(如105)替换fid,它会给出正确的答案),但是当我使用fid时,它就不再起作用并返回所有类的计数。出于某种原因,总是class.fid=fid。当我使用>、时,返回0计数!createorreplacePROCEDUREpro_report2ASCURSORc_dep